import { getProductType, getProductTypeId, getHotProducts } from "../../api/index.js"

Page({
  data: {
    productTypes: [],
    currentTypeId: 3, // 默认选中热门商品（ID=3）
    products: []
  },

  onLoad() {
    this.loadProductType();
  },

  // 加载分类（直接使用后端返回的分类，包含ID=3的热门商品）
  loadProductType() {
    getProductType().then(res => {
      console.log('分类接口返回：', res);
      if (res.data && res.data.length > 0) { 
        // 直接使用后端返回的分类（包含ID=3的热门商品）
        const types = res.data.map(item => ({
          id: item.id,
          name: item.typeName
        }));
        this.setData({ productTypes: types });
        
        // 自动选中ID=3的热门商品分类
        const hotItem = types.find(item => item.id === 3);
        if (hotItem) {
          this.clickItemNav({ currentTarget: { dataset: { item: hotItem } } });
        } else {
          console.warn("未找到ID=3的热门商品分类");
        }
      } else {
        wx.showToast({ title: '分类加载失败', icon: 'none' });
      }
    }).catch(() => {
      wx.showToast({ title: '网络错误', icon: 'none' });
    });
  },

  clickItemNav(e) {
    const item = e.currentTarget.dataset.item;
    const typeId = item.id;
    console.log("当前分类ID：", typeId, "需要调用的接口：", typeId === 3 ? "热门商品接口" : "普通分类接口");
    
    this.setData({ currentTypeId: typeId, products: [] });
  
    // 严格匹配：ID=3时调用热门商品接口
    if (typeId === 3) {
      // 调用热门商品接口（/product/findAll）
      getHotProducts()
        .then(responseData => {
          console.log("热门商品接口返回数据：", responseData);
          this.handleProductResponse(responseData);
        })
        .catch(err => {
          console.error("热门商品接口调用失败：", err);
          wx.showToast({ title: '热门商品加载失败', icon: 'none' });
        });
    } else {
      // 调用普通分类接口（/product/findProductByTypeId/xxx）
      getProductTypeId(typeId)
        .then(responseData => {
          this.handleProductResponse(responseData);
        })
        .catch(err => {
          console.error("普通分类接口调用失败：", err);
          wx.showToast({ title: '商品加载失败', icon: 'none' });
        });
    }
  },

  handleProductResponse(responseData) {
    console.log('接口响应数据：', responseData);
    if (responseData && responseData.code === 0) { 
      const products = (responseData.data || []).map(product => ({
        ...product,
        priceStr: Number(product.price).toFixed(2)
      }));
      this.setData({ products });
    } else {
      this.setData({ products: [] });
      wx.showToast({ title: '数据解析失败', icon: 'none' });
    }
  },

  gotoDetail(e){
    const productId=e.currentTarget.dataset.id;
    wx.navigateTo({
      url:`/pages/productDetail/productDetail?productId=${productId}`
    });
  }
})